package com.zebraphp.devtool.util;
import android.text.TextUtils;
import android.util.Log;

import com.zebraphp.devtool.DebugBase;


public class ILog {

    /**
     * 是否为开发者模式(开发模式打印LOG,非开发模式不打印LOG)
     */
    private static boolean mDebug = true;

    private ILog() {

    }

    /**
     * 打印info级别的log
     */
    public static void i(Object object, String msg) {
        String tagName = getTagName(object);
        if (mDebug) {
            Log.i(tagName, msg);
        }
    }

    /**
     * 打印error级别的log
     */
    public static void e(Object object, String msg) {
        String tagName = getTagName(object);
        if (mDebug) {
            Log.e(tagName, msg);
        }
    }

    private static String getTagName(Object object) {
        String tagName = object.getClass().getSimpleName();
        if (TextUtils.isEmpty(tagName)) tagName = "AnonymityClass";
        return tagName;
    }

    public static void tagGeneral(String msg) {
        print(DebugBase.tagGeneral, msg, Log.ERROR);
    }

    public static void tagHttp(String msg) {
        print("tagHttp", msg, Log.ERROR);
    }

    public static void printLib(String msg) {
        print(DebugBase.tagLib, msg, Log.ERROR);
    }

    public static void print(String TAG, String msg) {
        print(TAG, msg, Log.INFO);
    }
    /*
     * @param TAG
     * @param msg
     * @param level  1-info; 2-debug; 3-verbose 6-error
     */
    public static void print(String TAG, String msg, int level) {
        if (!mDebug || TAG == "FALSE") {
            return;
        }
        switch (level) {
            case Log.VERBOSE:
                Log.v(TAG, msg);
                break;
            case Log.DEBUG:
                Log.d(TAG, msg);
                break;
            case Log.INFO:
                Log.i(TAG, msg);
                break;
            case Log.WARN:
                Log.w(TAG, msg);
                break;
            case Log.ERROR:
                Log.e(TAG, msg);
                break;
            default:
                Log.i(TAG, msg);
                break;
        }

    }


}
